/**
 * 
 */
package fr.toussna.entity;

/**
 * <b>Cette classe rassemble les données propre un commentaire.</b>
 * <p>Elle hérite de la class globale @see {@link DomainEntity}.
 * Chaque classe comment est liée a une seule classe {@link Article} par l'élément articleId. 
 * </p>
 * @author My
 * @version 2.0
 *
 */
public class Comment extends DomainEntity {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 12638478585L;

	// **********************************
	// * Attributs *
	// **********************************
	/**
	 * L'article auquel il est rattaché
	 * @see Comment#setArticle(Article)
	 */
	private Article article;
	
	/**
	 *Le titre du commentaire 
	 *@see Comment#setTitle(String)
	 */
	private String title;
	
	/**
	 * Le nom de l'émetteur du commentaire.
	 * Ce nom s'affichera, il peut être vide
	 * @see Comment#setAutor(String)
	 */
	private String autor;
	
	/**
	 * Le contenu du commentaire
	 * @see Comment#setContent(String)
	 */
	private String content;

	
	// **********************************
	// * Constructeurs *
	// **********************************
	
	public Comment(){
		
	}
	public Comment(int id){
		super(id);
	}
	
	public Comment(Article article, String title){
		this.article = article;
		this.title = title;
	}
	
	public Comment(Article article, String title, String autor){
		this(article, title);
		this.autor = autor;
	}
	
	public Comment(Article article, String title,String autor, String content){
		this(article, title, autor);
		this.content = content;
	}
	
	// **********************************
	// * Methodes *
	// **********************************
	/**
	 * Envoi du commentaire sous forme de chaine de caractères.
	 * @return Le commentaire en littéral.
	 */
	public String toString(){
		StringBuffer bf = new StringBuffer();
		bf.append("Comment informations \n");
		bf.append("  Title: "+this.getTitle()+"\n");
		bf.append("  Autor: "+this.getAutor()+"\n");
		bf.append("  Article: "+this.getArticle().getTitle()+"\n");
		bf.append("  Content: "+this.getContent());
		return bf.toString();
	}
	
	
	// **********************************
	// * Getters & Setters *
	// **********************************
	/**
	 * @return l'article
	 */
	public Article getArticle() {
		return article;
	}

	/**
	 * @param article 
	 * 					l'article a setter 
	 */
	public void setArticle(Article article) {
		this.article = article;
	}

	/**
	 * @return le titre du commentaire
	 */
	public String getTitle() {
		return title;
	}

	/**
	 * @param title
	 * 				le titre a setter 
	 */
	public void setTitle(String title) {
		this.title = title;
	}

	/**
	 * @return l'auteur
	 */
	public String getAutor() {
		return autor;
	}

	/**
	 * @param autor 
	 * 				L'auteur a setter 
	 */
	public void setAutor(String autor) {
		this.autor = autor;
	}

	/**
	 * @return Le contenu du commentaire
	 */
	public String getContent() {
		return content;
	}

	/**
	 * @param content 
	 * 					Le contenu a setter 
	 */
	public void setContent(String content) {
		this.content = content;
	}
	

}
